package com.bookseek.xreader.utils;

import android.os.Build;
import android.os.LocaleList;

import com.github.houbb.opencc4j.util.ZhConverterUtil;
import com.github.houbb.opencc4j.util.ZhHkConverterUtil;
import com.github.houbb.opencc4j.util.ZhTwConverterUtil;

import java.util.Locale;

public class LocaleUtils {

    // -------------------------- 核心判断方法 --------------------------
    /**
     * 判断当前语言环境是否为「大陆（简体中文）」
     * @return true：是大陆环境；false：否
     */
    public static boolean isMainlandChina() {
        Locale currentLocale = getCurrentLocale();
        // 语言为中文（zh），且地区为大陆（CN）
        return "zh".equalsIgnoreCase(currentLocale.getLanguage())
                && "CN".equalsIgnoreCase(currentLocale.getCountry());
    }

    /**
     * 判断当前语言环境是否为「台湾（繁体中文）」
     * @return true：是台湾环境；false：否
     */
    public static boolean isTaiwan() {
        Locale currentLocale = getCurrentLocale();
        return "zh".equalsIgnoreCase(currentLocale.getLanguage())
                && "TW".equalsIgnoreCase(currentLocale.getCountry());
    }

    /**
     * 判断当前语言环境是否为「香港（繁体中文）」
     * @return true：是香港环境；false：否
     */
    public static boolean isHongKong() {
        Locale currentLocale = getCurrentLocale();
        return "zh".equalsIgnoreCase(currentLocale.getLanguage())
                && "HK".equalsIgnoreCase(currentLocale.getCountry());
    }

    // -------------------------- 辅助方法 --------------------------
    /**
     * 获取当前系统默认的 Locale（兼容 Android 12+）
     */
    private static Locale getCurrentLocale() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
            // Android 12+：获取首选语言列表的第一个（默认语言）
            return LocaleList.getDefault().get(0);
        } else {
            // Android 11及以下：直接获取默认 Locale
            return Locale.getDefault();
        }
    }

    /**
     * 获取当前地区名称（用于展示，如“大陆”“台湾”“香港”）
     * @return 地区名称；若不是目标地区，返回“其他”
     */
    public static String getCurrentRegion() {
        if (isMainlandChina()) {
            return "大陆";
        } else if (isTaiwan()) {
            return "台湾";
        } else if (isHongKong()) {
            return "香港";
        } else {
            return "其他";
        }
    }

    /**
     * 转换成大陆简体
     * @param text
     * @return
     */
    public static String toMainLandSimple(String text){
        if(isTaiwan()){
            return  ZhTwConverterUtil.toSimple(text);
        }
        if(isHongKong()){
            return ZhHkConverterUtil.toSimple(text);
        }
        return ZhConverterUtil.toSimple(text);
    }


    public static String toCnText(String text){
        return ZhConverterUtil.toSimple(text);
    }
    public static String toTwZhText(String text){
        return  ZhTwConverterUtil.toTraditional(text);
    }
    public static String toHkZhText(String text){
        return ZhHkConverterUtil.toTraditional(text);
    }


}
